package cn.iocoder.an.module.business.dal.mysql.reportconfig;

import java.util.*;

import cn.iocoder.an.framework.common.pojo.PageResult;
import cn.iocoder.an.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.an.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.an.module.business.dal.dataobject.reportviewnew.ReportConfigDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.an.module.business.controller.admin.reportconfig.vo.*;

/**
 * 报表配置 Mapper
 *
 * @author zzy
 */
@Mapper
public interface ReportConfigMapper extends BaseMapperX<ReportConfigDO> {

    default List<ReportConfigDO> selectListByReportId(Long reportId) {
        return selectList(ReportConfigDO::getReportId, reportId);
    }

    default int deleteByReportId(Long reportId) {
        return delete(ReportConfigDO::getReportId, reportId);
    }

    default int deleteByReportIds(List<Long> reportIds) {
        return deleteBatch(ReportConfigDO::getReportId, reportIds);
    }


    default PageResult<ReportConfigDO> selectPage(ReportConfigPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ReportConfigDO>()
                .eqIfPresent(ReportConfigDO::getReportId, reqVO.getReportId())
                .likeIfPresent(ReportConfigDO::getName, reqVO.getName())
                .likeIfPresent(ReportConfigDO::getDutyUserName, reqVO.getDutyUserName())
                .orderByDesc(ReportConfigDO::getId));
    }

}